/**
 * @param {Function} Father 父类
 * @param {Function} Child 子类
 * @description 
	原型链继承：利用子类的原型对象指向父类的实例，从而实现继承
	
	优点：
	实现简单，易于理解。
	可以继承父类原型中的所有属性和方法。
	
	缺点：
	无法向父类构造函数传递参数，导致所有实例都共享一个父类实例。
	父类中引用类型的属性会被所有子类实例共享，并且修改一个子类实例的属性会影响其他子类实例的属性。
	子类无法向父类构造函数传递参数，也无法通过子类原型上的方法修改父类中的属性。
 */
function Father() {
	this.name = 'father'
}
Father.prototype.getName = function() {
	return this.name
}

function Child() {
	this.type = '笨蛋美女'
}
Child.prototype = new Father() //子类的原型对象指向父类的实例

// Child.prototype = Object.create(Father.prototype)
// Child.prototype.constructor = Child

let child1 = new Child()
console.log(child1.getName()); //father

let child2 = new Child()
console.log(child2.type); //笨蛋美女
console.log(child2.getName()); //father